package org.cloud.dimension.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.cloud.constant.CoreConstant;
import org.springframework.stereotype.Component;

/**
 * 系统资源注解
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface SystemResource {

    String path() default "";  //资源路径，用于分类资源,例如 商品管理/SPU管理

    String description() default "";     // 资源名称

    String value() default "";     // 资源code

    CoreConstant.AuthMethod authMethod() default CoreConstant.AuthMethod.ALLSYSTEMUSER;   //验证方式,默认为所有的登录用户,ByUserAuth

    // 如下为菜单相关
    String menuName() default "";    // 菜单名称，可选，如果不为空，那么会自动创建菜单

    String menuCode() default "";    // 菜单编码，可选，如果不为空，那么会自动创建菜单

    String parentMenuCode() default ""; // 父级菜单名称，默认为无上级,用controller的类上

    String parentMenuName() default ""; // 父级菜单名称，默认为无上级,用controller的类上

    int index() default 0;  // 序号

    String icon() default "";
}
